经典蓝牙服务端 客户端 spp 蓝牙
插件 ID: 26830
来源: https://ext.dcloud.net.cn/plugin?id=26830
经典蓝牙插件 spp 客户端与服务端,支持打开、扫描、连接、写入数据,可指定 uuid,已补齐 HarmonyOS 端对应实现
更新记录
1.0.3(2026-06-03)
增加鸿蒙端
1.0.2(2026-05-06)
修复编译错误
1.0.1(2026-02-28)
修改插件名称信息 查看更多
平台兼容性
uni-app(4.61)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 | | | √ | √ |
- |
- | √ | √ | 5.0 |
- | √ | | | 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 | | |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- | |
uni-app x(4.56)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 | | |
- |
- | 5.0 |
- | √ |
- | |
其他
| 多语言 | 暗黑模式 | 宽屏模式 | | | √ | √ | √ | |
xtf-sppbt
引入
import {BtClient,,BtServer,openBtBluetooth,string2ByteStrWithCharset,byte2StringWithCharset,isEnabled,MyApiResult,ConnectPara,setConnectUUID,ServerReadData} from "@/uni_modules/xtf-sppbt"判断系统蓝牙是否开启
var b=isEnabled();// true 表示开启请求开启蓝牙
uniappx
openBtBluetooth(function(res:MyApiResult){
//res.type 0 表示开启成功 1 表示失败
console.log(res);
})uniapp
openBtBluetooth(function(res){
//res.type 0 表示开启成功 1 表示失败
console.log(res);
})字符转16进制字符串
var b=string2ByteStrWithCharset("您好 经典蓝牙","gbk")// 支持多种格式 可以传ut8-8 iso8859-1等
//b 的值为C4FABAC320BEADB5E4C0B6D1C016进制字符串转字符
var b=byte2StringWithCharset("C4FABAC320BEADB5E4C0B6D1C0") // 支持多种格式 可以传ut8-8 iso8859-1等
//b 的值为 您好 经典蓝牙设置蓝牙的uuid 默认为下方值 需要自定义请自行设置
setConnectUUID("00001101-0000-1000-8000-00805F9B34FB")经典蓝牙客户端
var client=new BtClient();扫描蓝牙
uniappx
client.startScanDevice(function(res:MyApiResult){
console.log(res);
// res.type -1 表示无蓝牙权限 0 表示扫描到蓝牙 res.data 为DeviceData
})uniapp
client.startScanDevice(function(res){
console.log(res);
// res.type -1 表示无蓝牙权限 0 表示扫描到蓝牙 res.data 为DeviceData
})停止扫描蓝牙
client.stopScan();获取系统已配对蓝牙
var bonds= client.getBondDevices()// bonds为MyApiResult res.data 为DeviceData请求蓝牙配对
uniappx
client.bond("41:42:8D:29:21:47",function(res:MyApiResult){
// 有返回表示配对状态发生变化
})uniapp
client.bond("41:42:8D:29:21:47",function(res){
// 有返回表示配对状态发生变化
})链接到经典蓝牙服务端
uniappx
client.onConnnect({
mac:"41:42:8D:29:21:47",
connectCallback:function(res:MyApiResult){
console.log(res);
// res.type 0 链接成功 10001 链接失败
},
dataCallback:function(res:MyApiResult){
console.log(res);
//res.type 0 读取到数据 数据为res.data 10000 开启读取成功 10001 为链接断开 读取异常了
}
} as ConnectPara)uniapp
client.onConnnect({
mac:"41:42:8D:29:21:47",
connectCallback:function(res){
console.log(res);
// res.type 0 链接成功 10001 链接失败
},
dataCallback:function(res){
console.log(res);
//res.type 0 读取到数据 数据为res.data 10000 开启读取成功 10001 为链接断开 读取异常了
}
} )发送数据
client.write("5566778899")断开链接
client.close();蓝牙是否链接
var b=client.isBtConnect()经典蓝牙spp 服务端
BtServer
var server=new BtServer();开启spp 蓝牙服务端
uniappx
server.startSppServer("xtf",function(res:MyApiResult){
console.log(res);
})uniapp
server.startSppServer("xtf",function(res){
console.log(res);
})开启spp 蓝牙服务端
uniappx
server.startSppServer("xtf",function(res:MyApiResult){
console.log(res);
// res.type 0服务已经开启 等待链接 10000 设备链接成功 res.data 为DeviceData 10001 为设备 断开链接 res.data 为DeviceData 10002 为 设备发送过来的数据 res.data 为ServerReadData
})uniapp
server.startSppServer("xtf",function(res){
console.log(res);
// res.type 0服务已经开启 等待链接 10000 设备链接成功 res.data 为DeviceData 10001 为设备 断开链接 res.data 为DeviceData 10002 为 设备发送过来的数据 res.data 为ServerReadData
})服务端主动关闭已链接蓝牙
server.closeSocket("41:42:8D:29:21:47")关闭蓝牙服务端
server.closeServer()